/**
 * 随机数生成
 * max 最大值 默认10 不包含
 * min 最小值 默认0  包含
 */
function random(max, min) {
  min = min || 0;
  max = max || 10;
  return Math.floor(Math.random() * (max - min) + min);
}

/**
* 将json转字符串保存到txt文件
* @filename {*} 文件名称 
* @obj {*} 要保存的json对象 
*/
function downloadJSON(filename, $obj) {
  download(filename, JSON.stringify($obj));
}

/**
* 将字符串保存到txt文件
* @filename {*} 文件名称 
* @text {*} 要保存的字符串 
*/
function download(filename, text) {
  var pom = document.createElement('a');
  pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
  pom.setAttribute('download', filename);
  if (document.createEvent) {
      var event = document.createEvent('MouseEvents');
      event.initEvent('click', true, true);
      pom.dispatchEvent(event);
  } else {
      pom.click();
  }
}

/**
* 生成随机数据
* @fn {*} 生成方法 
* @n {*} 生成数量 
*/
function GetList(fn, n) {
  n = n || 10;
  var list = [];
  for (var i = 0; i < n; i++) {
      var val = fn();
      if (val) {
          list.push(val)
      }
  }
  return list;
}

/**
* 随机手机号
*/
function GetPhone() {
  var tow = random(9, 3);
  var n = random(999999999, 100000000);
  return '1' + tow + '' + n
}

/**
* 随机身份证
*/
function GetIDCard() {
  var address = random(999999, 100000);
  var date = new Date();
  var yearfull = date.getFullYear();
  var y = random(yearfull + 1, yearfull - 70);
  var m = random(13, 1);
  var d = random(30, 1);
  var z = random(9999, 1000);
  if (m < 10) {
      m = '0' + m;
  }
  if (d < 10) {
      d = '0' + d;
  }
  return address + '' + y + '' + m + '' + d + '' + z + '';
}

/**
* 从身份证获取生日，年龄，性别
* @param {*} idCard 
*/
function GetIdCardInfo(idCard) {
  var data = {};
  var date = new Date();
  var yearfull = date.getFullYear();
  var _sex = parseInt(idCard.substring(14, 1), 10) % 2 ? "男" : "女"; //性别
  if (_sex == "男") {
      data.sex = {
          b: true,
          n: 1,
          c: "男",
      }
  }
  if (_sex == "女") {
      data.sex = {
          b: false,
          n: 0,
          c: "女",
      }
  }
  var birthday = "";
  birthday = idCard.substr(6, 8);
  birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");

  data.birthday = birthday;

  //获取年龄
  var myDate = new Date(data.birthday);
  var myear = myDate.getFullYear();

  data.age = yearfull - myear;
  return data;
}

/**
* 随机英文名字
*/
function GetName_En() {
  return GetLastName_En() +'·'+ GetLastName_En();
}

/**
* 随机名字
*/
function GetName(_LastName) {
  if(_LastName){
      return _LastName + GetFirstName();
  }
  return GetLastName() + GetFirstName();
}

/**
* 随机姓 英文
*/
function GetLastName_En() {
  return LastName_En[random(LastName_En.length, 0)];
}

/**
* 随机姓
*/
function GetLastName() {
  return LastName[random(LastName.length, 0)];
}

/**
* 随机名
*/
function GetFirstName() {
  //1-单字名
  //2-双字名
  //3-三字名
  //-1-叠字
  var n_arr = [
      1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 
      2, 2, 2, 2, 2, 2, 2, 2, 2, -1, -1, -1, -1, -1, -1, -1, 3];
  var n = n_arr[random(n_arr.length, 0)];
  var name = '';
  if (n < 0) {
      var nn = FirstName[random(FirstName.length, 0)];
      name += nn + nn;
  } else {
      for (let i = 0; i < n; i++) {
          name += FirstName[random(FirstName.length, 0)];
      }
  }
  return name;
}

/**
* 随机车
*/
function GetCar() {
  return Car[random(Car.length, 0)];
}

/**
* 随机公司
*/
function GetCop() {
  return Cop[random(Cop.length, 0)];
}

/**
* 生成银行卡信息
*/
function GetBankCard() {
  var max_bank = random(bank.length, 0);
  var max_bank2 = random(max_bank, 0);
  var max_bank3 = random(max_bank2, 0);
  var _Bank = bank[random(max_bank3, 0)];
  var max_money = random(99999999999, 0);
  var max_money2 = random(max_money, 0);
  var max_money3 = random(max_money2, 0);
  return {
      bankname: _Bank.name,
      card: _Bank.code + '' + random(9999999999999, 1000000000000),
      money: random(max_money3, 0)
  }
}

var bank = [{
  "name": "中国工商银行",
  "code": 623865
}, {
  "name": "招商银行",
  "code": 623045
}, {
  "name": "中国农业银行",
  "code": 624749
}, {
  "name": "中国建设银行",
  "code": 624448
}, {
  "name": "中国银行",
  "code": 627504
},];



var Cop = ['中国石油化工集团公司', '中国石油天然气集团公司' , '中国建筑工程总公司', '鸿海精密工业股份有限公司','中国工商银行', '中国平安保险','中国建设银行','好市多', '中国农业银行',  '中国人寿保险',  '中国银行', '中国移动通信集团公司','中国铁路工程总公司', '中国铁道建筑总公司'];

var Car = [
  '奥迪', 'ABT', 'AC Schnitzer', 'ALPINA', '宝马', '奔驰', '保时捷', '宝沃', '大众', '捷达', '卡尔曼', '卡尔森', '罗伦士', '欧宝', '奔驰Smart', '西雅特', '本田', '丰田', '雷克萨斯', '铃木', '马自达', '讴歌', '日产'];

var LastName_En=['Aaron','Abel','Abraham','Adam','Adrian','Alva','Alex','Alexander','Alan','Albert','Alfred','Andrew','Andy','Angus','Anthony','Arthur','Austin','Ben','Benson','Bill','Bob','Brandon','Brant','Brent','Brian'];

var LastName = [
  '赵', '钱', '孙', '李', '周', '吴', '郑', '王',
  '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨',
  '朱', '秦', '尤', '许', '何', '吕', '施', '张',
  '孔', '曹', '严', '华', '金', '魏', '陶', '姜',
  '戚', '谢', '邹', '喻', '柏', '水', '窦', '章',
  '云', '苏', '潘', '葛', '奚', '范', '彭', '郎',
  '鲁', '韦', '昌', '马', '苗', '凤', '花', '方',
  '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐',
  '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤',
  '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
  '乐', '于', '时', '傅', '皮', '卞', '齐', '康',
  '伍', '余', '元', '卜', '顾', '孟', '平', '黄',
  '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪',
  '祁', '毛', '禹', '狄', '米', '贝', '明', '臧',
  '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
  '熊', '纪', '舒', '屈', '项', '祝', '董', '梁',
  '杜', '阮', '蓝', '闵', '席', '季', '麻', '强',
  '贾', '路', '娄', '危', '江', '童', '颜', '郭',
  '梅', '盛', '林', '刁', '钟', '徐', '邱', '骆',
  '高', '夏', '蔡', '田', '樊', '胡', '凌', '霍',
  '虞', '万', '支', '柯', '昝', '管', '卢', '莫',
  '经', '房', '裘', '缪', '干', '解', '应', '宗',
  '丁', '宣', '贲', '邓', '郁', '单', '杭', '洪',
  '包', '诸', '左', '石', '崔', '吉', '钮', '龚',
  '程', '嵇', '邢', '滑', '裴', '陆', '荣', '翁',
  '荀', '羊', '於', '惠', '甄', '曲', '家', '封',
  '芮', '羿', '储', '靳', '汲', '邴', '糜', '松',
  '井', '段', '富', '巫', '乌', '焦', '巴', '弓',
  '牧', '隗', '山', '谷', '车', '侯', '宓', '蓬',
  '全', '郗', '班', '仰', '秋', '仲', '伊', '宫',
  '宁', '仇', '栾', '暴', '甘', '钭', '厉', '戎',
  '祖', '武', '符', '刘', '景', '詹', '束', '龙',
  '叶', '幸', '司', '韶', '郜', '黎', '蓟', '薄',
  '印', '宿', '白', '怀', '蒲', '邰', '从', '鄂',
  '索', '咸', '籍', '赖', '卓', '蔺', '屠', '蒙',
  '池', '乔', '阴', '鬱', '胥', '能', '苍', '双',
  '闻', '莘', '党', '翟', '谭', '贡', '劳', '逄',
  '姬', '申', '扶', '堵', '冉', '宰', '郦', '雍',
  '卻', '璩', '桑', '桂', '濮', '牛', '寿', '通',
  '边', '扈', '燕', '冀', '郏', '浦', '尚', '农',
  '温', '别', '庄', '晏', '柴', '瞿', '阎', '充',
  '慕', '连', '茹', '习', '宦', '艾', '鱼', '容',
  '向', '古', '易', '慎', '戈', '廖', '庾', '终',
  '暨', '居', '衡', '步', '都', '耿', '满', '弘',
  '匡', '国', '文', '寇', '广', '禄', '阙', '东',
  '欧', '殳', '沃', '利', '蔚', '越', '夔', '隆',
  '师', '巩', '厍', '聂', '晁', '勾', '敖', '融',
  '冷', '訾', '辛', '阚', '那', '简', '饶', '空',
  '曾', '毋', '沙', '乜', '养', '鞠', '须', '丰',
  '巢', '关', '蒯', '相', '查', '后', '荆', '红',
  '游', '竺', '权', '逯', '盖', '益', '桓', '公',
  '万俟', '司马', '上官', '欧阳',
  '夏侯', '诸葛', '闻人', '东方',
  '赫连', '皇甫', '尉迟', '公羊',
  '澹台', '公冶', '宗政', '濮阳',
  '淳于', '单于', '太叔', '申屠',
  '公孙', '仲孙', '轩辕', '令狐',
  '钟离', '宇文', '长孙', '慕容',
  '鲜于', '闾丘', '司徒', '司空',
  '丌官', '司寇', '仉督', '子车',
  '颛孙', '端木', '巫马', '公西',
  '漆雕', '乐正', '壤驷', '公良',
  '拓跋', '夹谷', '宰父', '谷梁',
  '晋', '楚', '闫', '法', '汝', '鄢', '涂', '钦',
  '段干', '百里', '东郭', '南门',
  '呼延', '归海', '羊舌', '微生',
  '岳', '帅', '缑', '亢', '况', '郈', '有', '琴',
  '梁丘', '左丘', '东门', '西门',
  '商', '牟', '佘', '佴', '伯', '赏', '南宫',
  '墨', '哈', '谯', '笪', '年', '爱', '阳', '佟', '第五', '言', '福',
];

var FirstName = "的一国在人了有中是年和大业不为发会工经上地市要个产这出行作生家以成到日民来我部对进多全建他公开们场展时理新方主企资实学报制政济用同于法高长现本月定化加动合品重关机分力自外者区能设后就等体下万元社过前面农也得与说之员而务利电文事可种总改三各好金第司其从平代当天水市提商十管内小技位目起海所立已通入量子问度北保心还科委都术使明着次将增基名向门应里美由规今题记点计去强两些表系办教正条最达特革收二期并程厂如道际及西口京华任调性导组东路活广意比投决交统党南安此领结营项情解议义山先车然价放世间因共院步物界集把持无但城相书村求治取原处府研质信四运县军件育局干队团又造形级标联专少费效据手施权江近深更认果格几看没职服台式益想数单样只被亿老受优常销志战流很接乡头给至难观指创证织论别五协变风批见究支那查张精林每转划准做需传争税构具百或才积势举必型易视快李参回引镇首推思完消值该走装众责备州供包副极整确知贸己环话反身选亚么带采王策真女谈严斯况色打德告仅它气料神率识劳境源青护列兴许户马港则节款拉直案股光较河花根布线土克再群医清速律她族历非感占续师何影功负验望财类货约艺售连纪按讯史示象养获石食抓富模始住赛客越闻央席坚份士热限米银息校均房周游千失八检足配存九命尔即防钱评复考依断范础油照段落访未额双让切须儿便空往你层低奖注黄英承远版维算破铁乐边初满病响药助致善突爱容香称购届余素请白宣健牌促培竞巴稳继紧字困刘旅声超随例担友号显却监材且春居适除红半买充陈火搞图阳六察试太什执片古七球修尽控讲排粮武预亲挥卖审措荣洲卫希店良属险曾围域令站苏龙念罗吨器汇康减习演普田班待星飞写矿轻扩言章汽靠毛终仍景置底福止离泽波兰核降训逐票菜座献钢眼损宁像苦印融独湖早予夫编换欧努著顾征升态套介送某斗状画留航派室临兵补宝略黑综云差纳密贫剧犯阿击遇岁阶烈督吃丰馆招害官树听庭另沙私针胜贷网愿托缺园假酒音巨既判输讨测读洋括筑欢刚庆久陆找楼激晚绝压故互签汉草木亩短绍迎吸警藏疗贵纷授登探索湾宏录申诉秀序顺死卡歌午孩桥喜川邓扬津温船库订练候退违否彩棉帮拿罪币角召灾妇杨奋绩虽煤免笔够永圳停奥鲜朝吴岛觉移尼急博贯拥束左细舞幅语俄奇般简拍脑债固威券追筹刻映繁伟甚饭右彻烟沿街血冲洪植誉刊玉厅救潮迅伍怎付倍顿述播励斤乎纸振旧障鼓艰呼吉男绿尚夏亏季松哈祖典韩遍夜轮板抗摄杂皮贡借幕罚伤岸扶乱曲脱践危澳童散味叶累谢孙邮雄兼微呢谁惠偿署择染答块徐鱼赞课盛延瑞怀";


export { random, downloadJSON, GetList, GetPhone, GetIDCard, GetIdCardInfo, GetName_En, GetName, GetCar, GetCop, GetBankCard }